package org.cg.componente;

import java.util.LinkedList;
import java.util.List;
import java.util.Random;

public class Movimento implements IComponente {
	
	public enum DireccaoMovimento {
		ESQUERDA, DIREITA, CIMA, BAIXO, NAO_PODE_ANDAR;
	}
	
	private List<DireccaoMovimento> direccoes;
	private static final Random RANDOM = new Random();
	
	public Movimento() {
		direccoes = new LinkedList<DireccaoMovimento>();
	}
	
	public DireccaoMovimento getDireccaoAleatoria() {
		if (direccoes.isEmpty()) {
			direccoes.add(DireccaoMovimento.NAO_PODE_ANDAR);
		}
		
		return direccoes.get(RANDOM.nextInt(direccoes.size()));
	}
	
	public List<DireccaoMovimento> getDireccoes() {
		return this.direccoes;
	}
	
	@Override
	public String toString() {
		StringBuffer sb = new StringBuffer("Movimento [ ");
		for (DireccaoMovimento direccaoMovimento : direccoes) {
			sb.append(" { ").append(direccaoMovimento).append(" } ");
		}
		return sb.append(" ]").toString();
	}
}
